package com.sdgs.paas.sdk.core.web.client;

import java.util.HashMap;
import java.util.Map;

import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;

/**
 * 异步查询请求对象类
 *
 * @author wjj
 * 
 * @param <T> 请求参数类型
 * 
 */
public class PaasAsyncQueryRequest<T> {
	public static final String SPRINGCLOUDCAll = "springcloudcall";
	public static final String EXTERNALCALL = "externalcall";

	// type分为 SPRINGCLOUDCAll或者EXTERNALCALL
	private String type;
	private String url;
	private HttpEntity<?> request;
	private Class<T> responseType;
	private ParameterizedTypeReference<T> repPType;
	private Map<String, ?> uriVariables=new HashMap<String, String>();

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public HttpEntity<?> getRequest() {
		return request;
	}

	public void setRequest(HttpEntity<?> request) {
		this.request = request;
	}

	public Class<T> getResponseType() {
		return responseType;
	}

	public void setResponseType(Class<T> responseType) {
		this.responseType = responseType;
	}

	public Map<String, ?> getUriVariables() {
		return uriVariables;
	}

	public void setUriVariables(Map<String, ?> uriVariables) {
		this.uriVariables = uriVariables;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public ParameterizedTypeReference<T> getRepPType() {
		return repPType;
	}

	public void setRepPType(ParameterizedTypeReference<T> repPType) {
		this.repPType = repPType;
	}

}
